package com.cuijiao.emp.java.util;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * @author cuijiao
 *
 */
public class BaseDao {
    /**
     * Statement处理对象执行数据操作（增删改）
     *
     * 返回操作影响行数
     */
    public int update(String sql) {
        // 获取连接对象
        Connection conn = JDBCUtil.getConnection();
        Statement stmt = null;
        int lines = 0;
        try {
            // 获取处理对象
            stmt = conn.createStatement();
            // 执行crud
            lines = stmt.executeUpdate(sql);
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {// 释放资源
            JDBCUtil.free(conn, stmt);
        }
        return lines;

    }

    /**
     * PreparedStatement预处理对象执行数据操作（增删改）
     *
     * (...表示可变长数组)
     */
    public int updateByPrepared(String sql, Object... objs) {
        // 获取连接对象
        Connection conn = JDBCUtil.getConnection();
        PreparedStatement pstmt = null;
        int lines = 0;
        try {
            // 获取预处理对象
            pstmt = conn.prepareStatement(sql);
            // 传参数
            for (int i = 0; i < objs.length; i++) {
                pstmt.setObject(i + 1, objs[i]);
            }

            // 执行crud
            lines = pstmt.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {// 释放资源
            JDBCUtil.free(conn, pstmt);
        }
        return lines;

    }
}
